package com.ruoyi.project.module.location.service;

import com.ruoyi.project.module.location.domain.Location;
import com.ruoyi.project.module.purchases.domain.Purchases;

import java.util.List;
import java.util.Map;

/**
 * 货物位置 服务层
 * 
 * @author lcx
 * @date 2018-10-08
 */
public interface ILocationService 
{
	/**
     * 查询货物位置信息
     * 
     * @param locationId 货物位置ID
     * @return 货物位置信息
     */
	public Location selectLocationById(Integer locationId);
	
	/**
     * 查询货物位置列表
     * 
     * @param location 货物位置信息
     * @return 货物位置集合
     */
	public List<Location> selectLocationList(Location location);
	
	/**
     * 新增货物位置
     * 
     * @param location 货物位置信息
     * @return 结果
     */
	public List<Integer> insertLocation(Location location);
	
	/**
     * 修改货物位置
     * 
     * @param location 货物位置信息
     * @return 结果
     */
	public List<Integer> updateLocation(Location location);
		
	/**
     * 删除货物位置信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteLocationByIds(String ids);

	/*查询菜单树*/
    List<Map<String,Object>> locationTreeData();

    /*查询栅格数量*/
	public int selectCountLocationByParentId(String locationId);

	/*检查名称是否重复*/
	String checkLocationNameUnique(Location location);

	/**
	 * @Author lcx
	 * @Date 2018/10/12 16:08
	 * 根据类型查询货架*/
	List<Location> selectCountLocationByType(Location location);

	/**
	 * @Author lcx
	 * @Date 2018/10/12 16:28
	 * 通过接口查询上架信息 然后上架
	 * smIds 查询条码的id
	 * locationId 父亲id
	 */
	List<String> updateLocationAsSweepCodeLocation(String[] smIds, String locationId, String state);

	/**
	 * @Author lcx
	 * @Date 2018/10/15 9:58
	 * 批量打印 和 单个打印 货架标签编码
	 */
	List<Location> selectLocationAsPrintLabel(String ids);

	/**
	 * @Author lcx
	 * @Date 2018/10/15 15:06'
	 * 通过打印id 查询pu表的的 打印信息
	 */
	List<Purchases> selectLocationListAsPringId(String ids);

	/**
	 * @Author lcx
	 * @Date 2018/10/15 15:48
	 * 扫码下架
	 */
	List<String> updateLocationAsSweepCodeLocationX(String[] smIds);
	
	/**
	 * @Author lcx
	 * @Date 2018/10/18 13:51
	 * 通过suk查询 商品位置信息
	 */
    Map<String,List<String>> selectLocationAsMainSKU(String[] skus);
}
